package Example6;

/**
 * 上面两种机制的方式都是既有优点又有缺点，希望它们优势互补。
 * 采用IoDH技术来实现单例模式。
 * Initialization Demand Holder (IoDH)
 */

public class IoDHSingleton{
    private IoDHSingleton(){

    }

    public static IoDHSingleton getInstance(){
         return  HolderClass.ioDHSingleton;
    }


    //通过内部类来创建实例。这是一个静态内部类，所以jvm在初始化加载时就首先为它分配内存，确保其唯一性，从而保证线程安全。
    private static class HolderClass{
        public static final IoDHSingleton ioDHSingleton=new IoDHSingleton();
    }
}

